package com.tfy.liquor.component;

import com.tfy.liquor.bean.UserInfo;
import com.tfy.liquor.service.UserInfoService;
import com.tfy.liquor.util.DateUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 定时任务类
 */
// *意义                                          表达式
// *每隔5秒钟执行一次	                            */5 * * * * ?
// *每隔1分钟执行一次                               0 */1 * * * ?
// *每天1点执行一次                                0 0 1 * * ?
// *每天23点55分执行一次 　                         0 55 23 * * ？
// *每月最后一天23点执行一次                          0 0 23 L * ？
// *每周六8点执行一次                               0 0 8 ? * L
// *每月最后一个周五，每隔2小时执行一次 　               0 0 */2 ? * 6L
// *每月的第三个星期五上午10:15 执行一次               0 15 10 ? * 5#3
// *在每天下午2点到下午2:05 期间的每1分钟执行            0 0-5 14**?
// *表示周一到周五每天上午10:15 执行 　                0 15 10?*2-6
// *每个月的最后一个星期五上午10:15 执行               0 15 10?*6L
// *每天上午10点，下午2点，4 点执行一次                0 0 10,14,16**?
// *朝九晚五工作时间内每半小时执行一次                   0 0/30 9-17**?
// *每个星期三中午12点执行一次 　                        0 0 12?*4
// *每年三月的星期三的下午2:10 和2:44 各执行一次         0 10,44 14?3 4　
// *每月的第三个星期五上午10:15 执行一次                0 15 10?*6#3
// *每月一日凌晨2点30执行一次                          0 30 2 1*?
// *每分钟的第10秒与第20秒都会执行                       10,20****?
// *每月的第2个星期的周5，凌晨执行                        0 0 0?*6#2

@Component
public class scheduledTasks {
    protected final Log logger = LogFactory.getLog(this.getClass());
//
//    @Autowired
//    private RolloverRecordsDao rolloverRecordsDao;

    @Autowired
    private UserInfoService userInfoService;
//
//    // 每天凌晨3点执行一次任务
//    @Scheduled(cron = "0 0 3**?")
//    public void sayWord() {
//        // 获取秒杀数据库中的流水记录
//        MoneylogServiceImpl moneylogService = new MoneylogServiceImpl();
//        List<RolloverRecords> list = moneylogService.transferVouchers();
//        for (int i = 0; i < list.size(); i++) {
//        // 如果数据中存在，则跳过
//            if (rolloverRecordsDao.getRepeat(list.get(i).getId()) > 0) {
//                continue;
//            }
//            if (rolloverRecordsDao.addRolloverRecords(list.get(i)) < 0) {
//                System.err.println("秒杀数据库订单转购物券流水出错："+ LocalDateTime.now());
//            }
//        }
//    }

    // 自动测试
//    @Scheduled(cron = "* * * * * ?")
    public void test() {
//        System.err.println("自动测试！");
//        System.err.println(DateUtil.getNowDateTime());

        // 自动注册用户
//        UserInfo userInfo=new UserInfo();
//        userInfo.setPhone("123456789");
//        userInfo.setPassword("123456");
//        userInfoService.addUserInfo(userInfo);
    }

}
